In a typical server-client system, a server computer is connected to several client computers or terminals via a network. In such server-client systems, applications are executed at the server rather than at the client. The server transmits display information to the client for display at the client, and user inputs (e.g., via keyboard or mouse) at the client are transmitted to the server for processing by an application(s) executing at the server. The “client” may be an entire client computer, or alternatively an application executing at the client computer.
A server in such a system typically has an operating system that can run several client sessions concurrently. Each client user has access to various resources of the server, including the processor, data storage, application programs, etc. Software applications that are resident on the server are available to each client for independent execution by the client. Each session is independent from the other sessions and, therefore, one client cannot access information relating to another client. In this manner, the server provides a logically independent machine for each client connected to the server.
Client users frequently use peripheral devices at the client machines. For example, a user may wish to attach a printer to the user's client computer (a “local” printer) in order to print data generated by an application that is running on the server computer. To do this, the user must manually install the local printer and redirect the printer queue created by the server to the I/O port of the client computer to which the printer is connected. Such manual installation of peripheral devices is undesirable because it requires significant time and effort on the part of the user.
A co-pending application U.S. patent application Ser. No. 09/458,365, filed Dec. 9, 1999, now U.S. Pat. No. 6,789,111 entitled “Automatic Detection And Installation Of Client Peripheral Devices By A Server”, to Tad Brockway, Madan Appiah, Adam Overton, and Ritu Bahl, filed concurrently herewith, describes a system in which peripheral devices attached to the client are automatically detected and corresponding device drivers installed at the server.
However, not all client peripheral devices can be automatically detected and installed. For example, if a printer is an older model that was manufactured before automatic detection technology was developed, it will not generate an identifier signal that is recognizable by the client or the server. Or, if the attached printer is a newer model but the client runs an older operating system that does not recognize the newer model printer or that does not have automatic peripheral detection capability, such as Windows® 3.1, it is necessary for the user to manually install the printer on the server.
A major drawback of this situation is that the printer must be installed each time the client connects to the server. For example, if a user installs a client printer on a server and subsequently disconnects the client from the server, the server configuration information relating to the printer is deleted. When the user reconnects to the server, the user must manually install the same printer again.
Adding to this inconvenience is the fact that if the user desires to operate the printer utilizing printer parameter settings that are different from the default settings, the user must also change the parameter settings each time the user connects to the server. For instance, if the default paper tray is the letter-size tray but the user always uses the legal-size paper tray, the user will have to set the paper tray parameter every time the user connects to a server and installs the printer.
The technology described below addresses these disadvantages, as it provides for client-side caching of server configuration information as well as peripheral device parameter settings. When the client is reconnected to a server after having been disconnected from a server session, the cached information is automatically transmitted to the server, where it is restored. The client user is thus relieved of the burden of having to manually install the printer or reset its parameter settings every time the client is connected to a server.